package com.auto.survey.activity.monitoring.entity

import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index
import androidx.room.PrimaryKey

/**
 * 平差结果实体类，对应数据库中的ATS_AdjustmentResult表
 * 记录观测数据平差处理的结果信息
 */
@Entity(
    tableName = "ATS_AdjustmentResult",
    foreignKeys = [
        ForeignKey(
            entity = MonitoringObject::class,
            parentColumns = ["monitoringObjId"],
            childColumns = ["monitoringObjId"],
            onDelete = ForeignKey.CASCADE
        )
    ],
    indices = [Index(value = ["monitoringObjId"])]
)
data class ATS_AdjustmentResult(
    /**
     * 平差结果ID，主键，自增长
     */
    @PrimaryKey(autoGenerate = true) val adjustmentId: Int = 0,
    /**
     * 所属监测对象ID，外键关联ATS_Monitoring表
     */
    val monitoringObjId: Int,
    /**
     * 平差类型（经典平差、最小二乘平差等）
     */
    val adjustmentType: String,
    /**
     * 平差时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val adjustmentTime: String,
    /**
     * 平差参数（JSON格式存储平差使用的参数）
     */
    val adjustmentParameters: String,
    /**
     * 平差软件
     */
    val adjustmentSoftware: String,
    /**
     * 平差精度（单位：毫米）
     */
    val adjustmentAccuracy: String,
    /**
     * 平差状态（成功、失败、处理中等）
     */
    val adjustmentStatus: String,
    /**
     * 平差备注
     */
    val adjustmentRemark: String? = null,
    /**
     * 创建时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val createTime: String,
    /**
     * 更新时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val updateTime: String
)
